浅谈视频翻录 - 1

作者:智多星
日期:2024年3月8日

浅谈视频翻录 - 0 中,我们通过简单的分析,完成了对加密视频的翻录。接下来,我们将通过抓取 网络数据包 来分析这个程序。


环境

准备如下环境工具:

抓包

HTTP Debugger Pro 设置 Filter websiteshen ,即过滤出 url 中含有 “shen” 字符串的 http 包。MuMu模拟器运行播放器。

/* 包1 */
Method: Get

Url: https://video.shenzaokeji.com/api/sys/isCheckApplication

Response{
   "code" : "0000",
   "data" : "ok",
   "message" : "成功"
}

/* 包2 */
Method:Get

Url:https://video.shenzaokeji.com/api/softwareVersion/queryBySoftwareType?softawerType=Android12106

Response{
   "code" : "0000",
   "data" : [
      {
         "createdBy" : null,
         "createdDate" : null,
         "downloadUrl" : "http://qiliu.shenzaokeji.com/player/Android/SZplayer%2023.12.106%20%282%29.apk",
         "id" : 690,
         "md5" : "2a88509e33438e4389b68ce89488",
         "softwareName" : "Android_sz_v23.12.106",
         "softwareType" : null,
         "time" : null,
         "updatedBy" : null,
         "updatedDate" : "2022-12-05 16:09:59",
         "version" : "1.0"
      }
   ],
   "message" : "成功"
}

嗯,明码,所谓的 “安全” 是这样的。朕就浅认为这个软件是期末作业吧。模拟器登录深造账户。抓到如下包。

用户名为 我的好兄弟-鲁智深 的登录响应包:

Response{"code":"0000","message":"成功","data":{"id":...,"pic1":null,"pic2":null,"playerName":好兄弟鲁智深,"helpUrl":null,"closeUrl":null,"userId":".+.+/.+VtrjtOOsu5hOTAubY+","userName":"..==","isActivation":1,"blackNum":0,"isBlack":0,"ip":"..==","watermarkSize":...,"screenshot":0,"watermark":"...==","licenseCode":"...","realNamePlayer":"01","faceRecognition":0,"chcekTime":...,"skin":0,"courseInfos":null,"weight":6,"feedback":null,"courseNames":null,"token":"...","online":null,"openid":null,"wcId":null,"bindingVal":"953wQmKUrBIlLZq8eUSIjw==","authTime":"...","regTime":"...","bindingMode":"...","playerMachineMaxNumber":...,"address":"空","encryptionTypeList":["JM","sz","XS","xswk","YWXH"],"merchantType":"EE","multimonr":0,"screenshot2":0,"sounddeten":0,"closeSoftware":0,"playerStrictions":0,"authentication":0,"broainte":0,"notify":null,"roomid":null,"appid":null,"appKey":null,"softwareRippingCheck":0,"closeProcess":0,"label":null,"captureCard":0,"qq":null}}

我们通过 HTTP Debugger Pro 中的 Auto-Reply 修改下 登录响应包 里面的敏感数据,重进播放器。此时,我们就可以进入到软件内部 大肆地 触发防破解机制了。

防封

由于我们重进了播放器,程序原先的 token 失效了,所以现在发的包将全部失效,只有本地功能在运行。

Method: Get
Url: XXX
Response{
   "code" : "9992",
   "message" : "会话超时,请重新登陆",
   "success" : false
}

简单地触发下 封号 功能,返回包如下:

Method: Post
Url: https://video.shenzaokeji.com/api/feedbackInfo/save

Requset{... 一些系统信息及 UserId ...}

Response{
   "code" : "9992",
   "message" : "会话超时,请重新登陆",
   "success" : false
}

我们简单地通过 Auto-Reply 功能修改 Response 为:

Response{
   "code" : "0000",
   "message" : "Cracked by hxgs",
   "data" : "ok"
}

通过上述操作即可达到防封功能,为了保险起见,我还通过 Hook 技术,修改了 Request 包以防止封号。

Android 端的 0 day 漏洞之二

根据上述的 封号包 内容,我们可以看到,深造视频加密 的封号功能传的参数竟然是 UserId 而非 CookieToken 等临时性信息。我们通过逆向 dump 下来的 深造.dex 可以还原出 UserId 加密算法,从而达到封禁 任意用户 的功能。

总结

深造播放器 所使用网络协议是 http/https 协议,该协议的安全性本就较低,包内容甚至有许多重要信息 不加密。更是出现了多个 0day 漏洞,所谓的 安全性 分明是虚假宣传。中国企业 应该讲诚信,通过宣传的美化、包装达到获取利益的目的,未免有点 不道德

在这里推荐使用未来可能出现的 智多星视频加密 来保护 自己珍贵的网课!!!

水波梁山-智多星视频加密
没有背景,只有趋近完美的技术。